package com.ruoyi.system.service.impl;

import java.util.List;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.AttachFile;
import com.ruoyi.system.mapper.AttachFileMapper;
import com.ruoyi.system.mapper.StoreMapper;
import org.springframework.stereotype.Service;
import com.ruoyi.system.domain.Store;
import com.ruoyi.system.service.IStoreService;

import javax.annotation.Resource;

/**
 * 全国门店Service业务层处理
 *
 * @author ruoyi
 * @date 2024-02-26
 */
@Service
public class StoreServiceImpl implements IStoreService {
    @Resource
    private StoreMapper storeMapper;

    @Resource
    private AttachFileMapper attachFileMapper;

    /**
     * 查询全国门店
     *
     * @param id 全国门店主键
     * @return 全国门店
     */
    @Override
    public Store selectStoreById(Long id) {
        Store store = storeMapper.selectStoreById(id);

        AttachFile attachFile = new AttachFile();
        attachFile.setSourceId(id);
        attachFile.setFileClass("04");
        List<AttachFile> attachFiles = attachFileMapper.selectAtts(attachFile);

        if (attachFiles.size() != 0) {
            store.setAttachFile(attachFiles.get(0));
        }
        return store;
    }

    /**
     * 查询全国门店列表
     *
     * @param store 全国门店
     * @return 全国门店
     */
    @Override
    public List<Store> selectStoreList(Store store) {
        return storeMapper.selectStoreList(store);
    }

    /**
     * 新增全国门店
     *
     * @param store 全国门店
     * @return 结果
     */
    @Override
    public int insertStore(Store store) {
        store.setCreateTime(DateUtils.getNowDate());
        int i = storeMapper.insertStore(store);
        // 卡片只有一个主图 已在前端控制
        if (store.getAttachFile() != null) {
            store.getAttachFile().setSourceId(store.getId());
            store.getAttachFile().setCreateTime(DateUtils.getNowDate());
            attachFileMapper.insertAttachFile(store.getAttachFile());
        }
        return i;
    }

    /**
     * 修改全国门店
     *
     * @param store 全国门店
     * @return 结果
     */
    @Override
    public int updateStore(Store store) {
        return storeMapper.updateStore(store);
    }

    /**
     * 批量删除全国门店
     *
     * @param ids 需要删除的全国门店主键
     * @return 结果
     */
    @Override
    public int deleteStoreByIds(Long[] ids) {
        return storeMapper.deleteStoreByIds(ids);
    }

    /**
     * 删除全国门店信息
     *
     * @param id 全国门店主键
     * @return 结果
     */
    @Override
    public int deleteStoreById(Long id) {
        return storeMapper.deleteStoreById(id);
    }
}
